package com.ruoyi.system.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.hibernate.validator.constraints.Length;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 通知公告对象 gw_notice
 *
 * @author ruoyi
 * @date 2025-04-29
 */
public class GwNotice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 公司ID */
    @Excel(name = "公司ID")
    private String companyId;

    /** 标题 */
    @Excel(name = "标题")
    @NotBlank(message = "标题必填，限输入50个字符")
    @Length(max=50, message = "标题必填，限输入50个字符")
    private String title;

    /** 内容描述 */
    //@Excel(name = "内容描述")
    private String notes;

    /** 通知路径 */
//    @Excel(name = "通知路径")
    private String url;

    private Long readNum;
    private Long unReadNum;

    private String staffName;

    private String userId;

    private List<GwNoticeFile> gwNoticeFileList;
    private List<GwNoticeStaff> gwNoticeStaffList;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setCompanyId(String companyId)
    {
        this.companyId = companyId;
    }

    public String getCompanyId()
    {
        return companyId;
    }

    public void setTitle(String title)
    {
        this.title = title;
    }

    public String getTitle()
    {
        return title;
    }

    public void setNotes(String notes)
    {
        this.notes = notes;
    }

    public String getNotes()
    {
        return notes;
    }

    public void setUrl(String url)
    {
        this.url = url;
    }

    public String getUrl()
    {
        return url;
    }

    public List<GwNoticeFile> getGwNoticeFileList() {
        return gwNoticeFileList;
    }

    public void setGwNoticeFileList(List<GwNoticeFile> gwNoticeFileList) {
        this.gwNoticeFileList = gwNoticeFileList;
    }

    public List<GwNoticeStaff> getGwNoticeStaffList() {
        return gwNoticeStaffList;
    }

    public void setGwNoticeStaffList(List<GwNoticeStaff> gwNoticeStaffList) {
        this.gwNoticeStaffList = gwNoticeStaffList;
    }

    public Long getReadNum() {
        return readNum;
    }

    public void setReadNum(Long readNum) {
        this.readNum = readNum;
    }

    public Long getUnReadNum() {
        return unReadNum;
    }

    public void setUnReadNum(Long unReadNum) {
        this.unReadNum = unReadNum;
    }

    public String getStaffName() {
        return staffName;
    }

    public void setStaffName(String staffName) {
        this.staffName = staffName;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("staffName", getStaffName())
            .append("readNum", getReadNum())
            .append("unReadNum", getUnReadNum())
            .append("companyId", getCompanyId())
            .append("gwNoticeFileList", getGwNoticeFileList())
            .append("gwNoticeStaffList", getGwNoticeStaffList())
            .append("title", getTitle())
            .append("notes", getNotes())
            .append("url", getUrl())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
